﻿// using System.Collections.Generic;
// using System.Threading.Tasks;
// using UnityEditor;
// using UnityEditorInternal;
// using UnityEngine;
//
// namespace SGEngine.ProfilerEx
// {
//     public static class TestSample
//     {
//         [MenuItem("Test/TestProfilerTreeData")]
//         public static void TestProfilerTreeData()
//         {
//             // 示例用法
//             var nodeList1 = new List<ProfilerTreeNode>()
//             {
//                 ProfilerTreeNode.RequestNode("A", 0, 1, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("B", 1, 2, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("C", 2, 3, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("BB", 1, 2, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("CC1", 2, 3, 0, 0, 0),
//             };
//             ProfilerTreeData tree1 = ProfilerTreeData.SetupTreeFromDepthsList(nodeList1);
//             Debug.Log(tree1);
//             
//             var nodeList2 = new List<ProfilerTreeNode>()
//             {
//                 ProfilerTreeNode.RequestNode("A", 0, 4, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("BB", 1, 1, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("CC1", 2, 2, 0, 0, 0),
//                 ProfilerTreeNode.RequestNode("CC2", 2, 2, 0, 0, 0)
//             };
//             ProfilerTreeData tree2 = ProfilerTreeData.SetupTreeFromDepthsList(nodeList2);
//             Debug.Log(tree2);
//             
//             ProfilerTreeData.MergeTrees(tree1, tree2);
//             Debug.Log(tree1);
//             
//             var rtree = ProfilerTreeData.ReverseTree(tree1);
//             Debug.Log(rtree);
//
//             LogReverseTreeAsync(tree1);
//             tree1.Dispose();
//             tree2.Dispose();
//             rtree.Dispose();
//         }
//
//
//         private static void LogReverseTreeAsync(ProfilerTreeData treeData)
//         {
//             var data = ProfilerTreeData.ReverseTree(treeData);
//             Debug.Log(data);
//         }
//
//         [MenuItem("Test/TestLogAllThreadGroupName")]
//         public static void TestLogAllThreadGroupName()
//         {
//             var frameIdx = ProfilerDriver.lastFrameIndex;
//             var list = ProfilerExUtility.GetAllThreadListByFrameIdx(frameIdx);
//             var tmp = new List<string>();
//             foreach (var item in list)
//             {
//                 var s = string.IsNullOrEmpty(item.GroupName) ? item.ThreadName : item.GroupName;
//                 if (tmp.IndexOf(s) == -1)
//                 {
//                     tmp.Add(s);
//                 }
//             }
//             Debug.Log(string.Join("\n", tmp));
//         }
//     }
// }